package torres.map.effect;

import java.io.Serializable;

import torres.entity.Entity; 

/**
 * @author Torres
 * Represents a process that is automatically triggered when an
 * Entities step on a tile.
 */
@SuppressWarnings("serial")
public abstract class AreaEffect implements Serializable {
	
	protected int multiplier;
	
	/**
	 * Creates a new AreaEffect with the specified multiplier.
	 * @param multiplier The multiplier of the new AreaEffect.
	 */
	protected AreaEffect(int multiplier) {
		
		this.multiplier = multiplier;
	}
	
	
	/**
	 * Returns the multiplier for this AreaEffect
	 * @return The multiplier for this AreaEffect
	 */
	public int getMultiplier() {
		
		return multiplier;
	}
	
	/** 
	 * Applies the Effect to the specified Entity.
	 * @param entity The Entity to which the affect is being applied.
	 */
	public abstract void applyEffect(Entity entity);
}